import DataTable, { HFColumns } from '@/components/DataTable'
import { getDistinct } from '@/types/request';
import { UserInfo } from '@/services/types';
import React from 'react'

const UserInfoPage: React.FC = () => {
  const url = '/api/UserInfo'; // 增删改查接口
  type T = UserInfo; // 数据类型
  // 列定义
  const columns: HFColumns[] = [
    {
      title: '所有者',
      key: 'owner',
      dataIndex: 'owner',
      valueType: 'text',
      editable: false,
      search: false,
    },
    {
      title: '名称',
      key: 'name',
      dataIndex: 'name',
      valueType: 'select',
      request: () => getDistinct('UserInfo', 'name', 'displayName'),
      editType: 'text',
    },
    {
      title: '显示名称',
      key: 'displayName',
      dataIndex: 'displayName',
      valueType: 'text',
    },
    {
      title: '所属机构',
      key: 'affiliation',
      dataIndex: 'affiliation',
      valueType: 'text',
    },
    {
      title: '最后登录IP',
      key: 'lastSigninIp',
      dataIndex: 'lastSigninIp',
      valueType: 'text',
      editable: false,
    },
    {
      title: '是否管理员',
      key: 'isAdmin',
      dataIndex: 'isAdmin',
      valueType: 'checkbox',
    },
    {
      title: '是否被禁止',
      key: 'isForbidden',
      dataIndex: 'isForbidden',
      valueType: 'switch',
      editable: false,
    },
    {
      title: '创建时间',
      key: 'createdTime',
      dataIndex: 'createdTime',
      valueType: 'dateTime',
      editable: false,
      search: false,
    },
    {
      title: '更新时间',
      key: 'updatedTime',
      dataIndex: 'updatedTime',
      valueType: 'dateTime',
      editable: false,
      search: false,
    },
  ]

  return (
    <>
      <DataTable
        url={url}
        columns={columns}
        rowKey={'id'}
      // hideAction={true} // 隐藏操作列
      // hideActionDel={true} // 隐藏操作列中的删除按钮
      // showSearchBox={false} // 隐藏搜索框
      // hideToolbar={true} // 隐藏工具栏(新增,刷新)
      // hidePagination={true} // 隐藏底部分页项
      />
    </>
  )
}

export default UserInfoPage